package com.net.framework.help.utils;

import java.math.BigDecimal;
import java.text.DecimalFormat;

public class FloatDecimalUtil {

    private static DecimalFormat decimalFormat = new DecimalFormat("##0.00"); // 保留两位小数

    /**
     * 返回保留2为小数的字符串
     *
     * @param value
     * @return
     */
    public static String getFormatValue(float value) {
        return decimalFormat.format(value);
    }

    public static String getFormatValue(double value) {
        return decimalFormat.format(value);
    }

    public static String getFormatValue(String a) {
        String result = "0.00";
        if (!StringUtil.isBlank(a)) {
            float value = Float.parseFloat(a);
            result = getFormatValue(value);
        }
        return result;
    }

    /**
     * 加
     *
     * @param a
     * @param b
     * @return
     */
    public static float add(float a, float b) {
        BigDecimal decimalA = new BigDecimal(a);
        BigDecimal decimalB = new BigDecimal(b);
        return decimalA.add(decimalB).floatValue();
    }

    public static String addString(String a, String b) {
        if (StringUtil.isBlank(a)) {
            a = "0";
        }
        if (StringUtil.isBlank(b)) {
            b = "0";
        }
        BigDecimal decimalA = new BigDecimal(a);
        BigDecimal decimalB = new BigDecimal(b);
        return getFormatValue(decimalA.add(decimalB).floatValue());
    }

    /**
     * 减
     *
     * @param a
     * @param b
     * @return
     */
    public static double sub(double a, double b) {
        BigDecimal decimalA = new BigDecimal(a);
        BigDecimal decimalB = new BigDecimal(b);
        return decimalA.subtract(decimalB).floatValue();
    }

    public static String subString(String a, String b) {
        if (StringUtil.isBlank(a)) {
            a = "0";
        }
        if (StringUtil.isBlank(b)) {
            b = "0";
        }
        BigDecimal decimalA = new BigDecimal(a);
        BigDecimal decimalB = new BigDecimal(b);
        return getFormatValue(decimalA.subtract(decimalB).floatValue());
    }

    /**
     * 乘
     *
     * @param a
     * @param b
     * @return
     */
    public static double mul(double a, double b) {
        BigDecimal decimalA = new BigDecimal(a);
        BigDecimal decimalB = new BigDecimal(b);
        return decimalA.multiply(decimalB).floatValue();
    }

    /**
     * 除（保留2位）
     *
     * @param a
     * @param b
     * @return
     */
    public static float div(double a, double b) {
        BigDecimal decimalA = new BigDecimal(a);
        BigDecimal decimalB = new BigDecimal(b);

        return decimalA.divide(decimalB).floatValue(); // 保留2位
    }

}
